﻿using Sharp3D.Math.Core;
using System;

namespace GLWrap
{
    public interface ICamera
    {
        Vector3F Eye { get; set; }
        Vector3F View { get; set; }
        Vector3F Up { get; set; }

        event EventHandler CameraPositionChanged;

        void Rotate(float angle, Vector3F vector);
        /// <summary>
        /// Moves camera to the appropriate direction
        /// </summary>
        /// <param name="direction"></param>
        /// <param name="coefficient">camera will be moved to the appropriate direction by
        /// adding generated normalized vector multiplied by coefficient</param>
        void Move(Direction direction, float coefficient);
    }
}
